<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Enclosing Type</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Chapter 1. The Type Traits Introspection Library">
<link rel="up" href="../index.html" title="Chapter 1. The Type Traits Introspection Library">
<link rel="prev" href="tti_func_sig.html" title="Nested Types and Function Signatures">
<link rel="next" href="tti_usingMM.html" title="An example using the macro metafunctions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="tti_func_sig.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tti_usingMM.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="the_type_traits_introspection_library.tti_enclosing_type"></a><a class="link" href="tti_enclosing_type.html" title="Enclosing Type">Enclosing
    Type</a>
</h2></div></div></div>
<p>
      The enclosing type you introspect with TTI must be a valid type at the point
      in which you invoke the macro metafunction. If it is not a valid type at that
      point you will receive a compiler error.
    </p>
<p>
      If the enclosing type is a valid type but is not a class, struct, or union
      type you will not receive a compiler error, but the result of the introspection
      will always return 'false' or, in the case of the metafunction generated by
      BOOST_TTI_MEMBER_TYPE, will always return the marker type.
    </p>
<p>
      When using the macro metafunctions generated by BOOST_TTI_HAS_MEMBER_DATA,
      BOOST_TTI_HAS_MEMBER_FUNCTION, and BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE the
      first template parameter may be an enclosing type or a pointer to member data
      or member function respectively. In each of these cases TTI can distinguish
      between the two possibilities and only if the first template parameter is an
      enclosing type, once again if it is a valid type but not a class, struct, or
      union type you will not receive a compiler error but the result of the introspection
      will return 'false'.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2011-2013 Tropic Software
      East Inc<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="tti_func_sig.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tti_usingMM.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
